1. Field of the Invention
This invention relates to a nonvolatile semiconductor memory device constructed using electrically reprogrammable nonvolatile memory cells.
2. Description of the Related Art
A NAND type flash memory has been proposed which uses an EEPROM (Electronically Erasable and Programmable Read Only Memory) as an electrically reprogrammable nonvolatile semiconductor memory device. In recent years, as disclosed by U.S. Pat. No. 6,643,188, various multi bit memory methods have been proposed in which one nonvolatile memory cell (below sometimes referred to as “memory cell”) memorizes multi bit data in order to realize further large capacity flash memories.
In the above stated multi bit memory method, a memory cell threshold is used so that a wide voltage region is separated into many parts from a low voltage region over a high voltage region. In the case of setting a threshold in a higher voltage region, there is a need to perform programming using a higher programming voltage.
In a case where a high voltage region is set as a threshold in a memory cell which is to be programmed and where programming of a memory cell which is adjacent on the same word line as this memory cell, has already finished, when the threshold of the memory cell to which programming has already finished (that is, the above stated adjacent memory cell) is located in a low voltage region and a high voltage programming voltage is applied to the word line of the memory cell to be programmed, the following phenomenon occurs. That is, because a high voltage is also applied for a long time to the word line of the adjacent memory cell in which programming has already finished, the threshold which is located in a low voltage region of an adjacent memory cell receives an effect and is shifted to a higher voltage region. In addition, capacitive coupling between the floating gate of a memory cell and the floating gate of an adjacent memory cell which is to be programmed caused by a reduction in the design rules in recent years can no longer be ignored. Also because of this, there are also cases where the threshold of a memory cell in which programming has finished shifts to a higher voltage region. When the threshold of this adjacent memory cell shifts to a higher voltage region and the threshold moves into another threshold range which does not corresponds to the data value which is originally programmed, a programming error occurs.